package com.model.dto.sys.roleController;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.Valid;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.Set;

@Data
public class UpdateRoleListDTO {
    @ApiModelProperty(value = "roleInfoSet不能为空",required = true)
    @NotNull(message = "roleInfoSet不能为空")
    @Valid
    Set<RoleInfo> roleInfoSet;
    @Data
    public static class RoleInfo{
        @ApiModelProperty(value = "角色id",required = true)
        @NotNull(message = "角色id不能为空")
        Long sysRoleId;

        @ApiModelProperty(value = "角色名,角色名长度限制为50")
        @Size(min = 0, max = 50, message = "角色名长度限制为50")
        String name;

        @ApiModelProperty(value = "权限关键字，以,分开")
        Set<String> permissions;

        @ApiModelProperty(value = "按钮权限")
        Set<String> buttons;

        @ApiModelProperty(value = "数据范围（0：全部数据权限 1：自定数据权限 2：本部门数据权限 3：本部门及以下数据权限 4:仅本人数据）",allowableValues = "0,1,2,3,4")
        @Min(value = 0, message = "数据范围（0：全部数据权限 1：自定数据权限 2：本部门数据权限 3：本部门及以下数据权限 4:仅本人数据）")
        @Max(value = 4, message = "数据范围（0：全部数据权限 1：自定数据权限 2：本部门数据权限 3：本部门及以下数据权限 4:仅本人数据）")
        Byte dataScope;

        @ApiModelProperty(value = "描述,描述长度限制为1024")
        @Size(min = 0, max = 1024, message = "描述长度限制为1024")
        String synopsis;

        @ApiModelProperty(value = "用户id列表")
        Set<Long> sysUserIds;

        @ApiModelProperty(value = "部门id列表")
        Set<Long> deptIds;

        @ApiModelProperty(value = "菜单id列表")
        Set<Long> menuIds;
    }
}
